/* 品牌管理仓库 */
import { ElMessage } from 'element-plus'
import 'element-plus/theme-chalk/el-message.css'
import { defineStore } from 'pinia'
/* TS对商品列表进行类型约束 */
import type {
  reqGetGoods,
  getGoodsRespond,
  reqAddGoodsList,
} from '@/apis/goods/brand/goodsTypes'
/* 获取品牌接口 */
import {
  getGoodsListAPI,
  addGoodsAPI,
  deletGoodsAPI,
} from '@/apis/goods/brand/index'
export const useGoodsStateStore = defineStore('goodsList', {
  /* 存储数据的仓库 */
  state: () => {
    return {
      goodsList: [],
      goodsTit: {
        page: 1 /* 当前页码*/,
        limit: 10 /* 每页条数信息 */,
      },
      total: 0 /* 列表总条数 */,
      dialogGoodsVisible: false /* 添加商品弹窗 */,
    }
  },
  /* 异步逻辑 || 同步逻辑 */
  actions: {
    /* 获取商品列表 */
    async getGoodsList(val: reqGetGoods) {
      const { data: res }: getGoodsRespond = await getGoodsListAPI(val)
      /* 对相应回来的数据进行判断 */
      if (res.code != 200) ElMessage.error(res.message) /* 获取失败 */
      /* 获取成功 对仓库数据进行赋值*/
      this.goodsList = res.data.records
      this.total = res.data.total
    },
    /* 添加商品 */
    async addGoods(val: reqAddGoodsList) {
      const { data: res }: getGoodsRespond = await addGoodsAPI(val)
      /* 对返回的数据进行校验 */
      if (res.code != 200) ElMessage.error(`删除${res.message}`) /* 添加失败 */
      /* 如果添加成功 */
      this.getGoodsList(this.goodsTit)
      ElMessage.success(`修改${res.message}`)
    },
    /* 删除商品 */
    async deletGoods(id: number) {
      const { data: res }: getGoodsRespond = await deletGoodsAPI(id)
      /* 对返回的数据进行校验 */
      if (res.code != 200) ElMessage.error(`删除${res.message}`) /* 删除失败 */
      /* 如果添加成功 */
      this.getGoodsList(this.goodsTit)
      ElMessage.success(`删除${res.message}`)
    },
  },
})
